The present application relates generally to an improved data processing apparatus and method and more specifically to mechanisms for dynamic image updates.
In computing, the term image is variously used to refer to several different categories of images including: (i) card image (that is, a character string that was, or could be, contained on a single punched card); (ii) disk image (that is, a computer file containing the complete contents and structure of a data storage device); (iii) ISO image (that is, an archive file (disk image) of an optical disc); (iv) RAM image (that is, a sequence of machine code instructions kept on ROM and moved to the RAM for use); (v) ROM image (that is, a computer file which contains a copy of the data from a read-only memory chip); (vi) single system image (SSI) (that is, a cluster of computers that appear to be a single computing system); (vii) system image (that is, the state of a computer or software system stored in some form); (viii) tape image (that is, an image of the contents of a computer's magnetic tape) and (ix) executable (that is, a computer file containing an executable program; short for “executable program image”). It is noted that the use of the word “image” herein does not refer to a graphic image (that is, a picture designed to be perceived by human vision).
Published US patent application, publication number 2009/0292737 states as follows: “A method for updating a plurality of disk images, each of the plurality of disk images derived from a common base disk image and a delta image comprising a plurality of delta files, includes applying a delta file to a base disk image to generate a second disk image comprising a portion of the base disk image modified by the delta file and an unmodified portion of the base disk image. Each delta file represents at least one difference between one of the plurality of user disk images and the base disk image. The method includes applying a patch to a copy of the base disk image, and determining that the patch is applied to a portion of the base disk image corresponding to the unmodified portion of the base disk image. The delta file is applied to the patched copy of the base disk image.”
Cloud computing is a type of Internet-based computing that provides shared computer processing resources and data to computers and other devices on demand. It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable computing resources (e.g., computer networks, servers, storage, applications, and services), which can be rapidly provisioned and released with minimal management effort. Cloud computing and storage solutions provide users and enterprises with various capabilities to store and process their data in third-party data centers that may be located far from the user-ranging in distance from across a city to across the world. Cloud computing relies on sharing of resources to achieve coherence and economy of scale.
Though service-oriented architecture advocates “everything as a service” (with the acronyms EaaS or XaaS or simply aas), cloud-computing providers offer their “services” according to different models, of which the three standard models per the National Institute of Standards and Technology (NIST) are Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS). These models offer increasing abstraction; they are thus often portrayed as layers in a stack: infrastructure-, platform- and software-as-a-service, but these need not he related. For example, one can provide SaaS implemented on physical machines (bare metal), without using underlying PaaS or IaaS layers, and conversely one can run a program on IaaS and access it directly, without wrapping it as SaaS.
The NIST's definition of cloud computing defines the service models as follows:
Software as a Service SaaS)). The capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.
Infrastructure as a Service (IaaS). The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer can deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).
According to the Internet Engineering Task Force (IETF), the most basic cloud-service model is that of providers offering computing infrastructure—virtual machines and other resources—as a service to subscribers. Infrastructure as a service (IaaS) refers to online services that abstract the user from the details of infrastructure like physical computing resources, location, data partitioning, scaling, security, backup etc. A hypervisor or virtual machine monitor (VMM) runs the virtual machines as guests. Pools of hypervisors within the cloud operational system can support large numbers of virtual machines and the ability to scale services up and down according to customers' varying requirements. IaaS clouds often offer additional resources such as a virtual-machine disk-image library, raw block storage, file or object storage, firewalls, load balancers, IP addresses, virtual local area networks (VLANs), and software bundles.
IaaS-cloud providers supply these resources on-demand from their large pools of equipment installed in data centers. For wide-area connectivity, customers can use either the Internet or carrier clouds (dedicated virtual private networks). To deploy their applications, cloud users install operating-system images and their application software on the cloud infrastructure. In this model, the cloud user patches and maintains the operating systems and the application software. Cloud providers typically bill IaaS services on a utility computing basis: cost reflects the amount of resources allocated and consumed.